A distributed computing system can include a number of server computer devices (“servers”) for processing data requests from users. The user requests can be distributed among the servers, e.g., to balance a load between the servers. Some distributed computing systems use specialized servers, referred to as load-balancing servers, that perform the load-balancing functions to distribute the user requests among the servers. The load-balancing servers can use various techniques and algorithms to distribute the load among the servers. Some load-balancing techniques distribute user requests from mobile devices to a first set of servers and user requests from desktops to another set of servers. Some load-balancing techniques send requests received from the user at different instances to different servers while some load-balancing techniques send all requests from a single user to the same server.
Some load-balancing techniques determine a server to transmit the user request based on user related information e.g., user identification (“ID”) of the user. For example, the load-balancing techniques use a hash function on the user ID to determine a server to which the user request is to be transmitted. Such a load-balancing technique can be disadvantageous. For example, consider that a client computing device (“client device”) of the user using which the user sends a data access request is in a first location and two servers, e.g., a first server is in the first location and a second server is in the second location. Further, consider that a latency between the client device and the first server is less than the latency between the client device and the second server, e.g., as the first server is more proximate to the client device than the second server is to the client device. When a load-balancing server determines the server using a hash function on the user ID, the hash function can result in identifying the second server the latency of which is greater than that of the first server. This can result in the user experiencing a higher latency in accessing the data than the user would have if the request were to be transmitted to the first server.
Further, some distributed computing systems do not permit the data associated with the user or an application the user is accessing to be moved from one server to another server. Once a specified server is identified for the user, e.g., initially when the user issued a first data access request, the data access requests from that user is mostly forwarded to the same specified server. This can be disadvantageous, e.g., when the user moves from one region to another region, and the latency can increase if the user has moved further away from the specified server and the user can experience a significant delay in accessing the data.